package com.pti.usermanager.dao.api;

import com.pti.usermanager.dao.po.DeptPo;
import com.pti.usermanager.web.dto.request.SaveDeptRequest;
import com.pti.usermanager.web.dto.request.UpdateDeptRequest;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName: DeptDao
 * @Author: liumengyao
 * @Description: 部门数据交换层
 * @Date: 2019/1/17
 */
public interface DeptDao {

    //分页模糊查询部门
    List<DeptPo> findAll(@Param("deptNm") String deptNm);
    //查看所有部门
    List<DeptPo> findAllCanCheck(@Param("deptNm") String deptNm);
    //根据部门id查看部门
    DeptPo findDeptByDeptId(@Param("deptId") Long deptId);
    //添加部门
    void saveDept(@Param("saveDeptRequest") SaveDeptRequest saveDeptRequest);
    //修改部门
    void updateDept(@Param("updateDeptRequest") UpdateDeptRequest updateDeptRequest);
    //删除部门
    void delDept(@Param("deptId") Long deptId);
    //分配岗位
    void savePostByDeptIdAndPostId(@Param("deptId") Long deptId,
                                   @Param("postId") Long postId);
    //删除分配岗位数据
    void deletePostByDid(@Param("deptId") Long deptId);
    //分配用户
    void saveUserByDeptIdAndUsrId(@Param("deptId") Long deptId,
                                  @Param("usrId") Long usrId);
    //部门树查询
    List<DeptPo> findTree(@Param("compId") Long compId);
    //删除分配用户数据
    void deleteUserByDid(@Param("deptId") Long deptId);
}
